		.EQU	HORAS		0602H
		.EQU	MINUTOS		0601H
		.EQU	SEGUNDOS	0600H
		.EQU	APDIS		67D6H
		.EQU	POSCUR		664CH
		.EQU	ENCPRT		6677H
		.EQU	READKB		50H
		.EQU	STATUS		01H
		.EQU 	DATA		00H
		.ORG	0100H



				
RE:	
		
		LD	SP,057FH
		CALL	APDIS
		LD	A,30H ;Cargar 30 segundos al comienzo.
		DAA
		LD	(SEGUNDOS),A
	

		 


MAIN:	CALL	MOSTRAR_SEGS_TIMER
		CALL	DELAY
		CALL	DELAY
		CALL	DELAY
		CALL 	STOPRESET


RESTARM: CALL RESTAR_SEG_TIMER
         JP MAIN


;Mostrar segundos del timer

MOSTRAR_SEGS_TIMER:	LD		A,02H
		    		CALL	POSCUR
		    		LD		A,(SEGUNDOS)
					CALL	ENCPRT
					RET
		
DELAY:		LD	C,0FFH
LOOP1:		LD	B,0FFH
LOOP2:		DEC	B
		JP	NZ,LOOP2
		DEC	C
		JP	NZ,LOOP1
		RET	

RESTAR_SEG_TIMER:   LD A,(SEGUNDOS)
					SUB 1
					DAA
					CP	00H
                    JP  Z, MAIN
					LD	(SEGUNDOS),A
					RET



STOP:	LD	A,READKB
		OUT	(STATUS),A
		IN	A,(STATUS)
		AND 	7
		JP	Z,STOP
		IN	A,(DATA)
		AND 3FH
		CP 	1
		JP 	Z,RESTARM
		


STOPRESET:	LD 	A,READKB
			OUT	(STATUS),A
			IN	A,(STATUS)
			AND	7
			JP	Z,RESTARM
			IN	A,(DATA)
			AND 3FH
			CP 	1
			JP	Z,RESTARM
			CP	2
			JP	Z,STOP
			CP	3
			JP	Z,RE
			RET